//2, 基础 Widget
//Text,Row,Column,Stack,Container

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';

class BaseWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    //Material Design布局结构的基本实现。此类提供了用于显示drawer、snackbar和底部sheet的API。
    return Scaffold(
      //一个Material Design应用程序栏，由工具栏和其他可能的widget（如TabBar和FlexibleSpaceBar）组成。
      appBar: AppBar(
        title: Text("基础widget"),
      ),
      body: new Material(
        child: SingleChildScrollView(
          child: Column(
            children: <Widget>[
              //Image: 一个显示图片的widget
              Image.asset("images/pic2.jpg"),
              Image(image: AssetImage("images/pic3.jpg"),),
              Image.network(
                  "https://cdn.jsdelivr.net/gh/flutterchina/website@1.0/images/homepage/header-illustration.png"),
              Image(image: NetworkImage(
                  "http://n.sinaimg.cn/sports/2_img/upload/cf0d0fdd/107/w1024h683/20181128/pKtl-hphsupx4744393.jpg"),),
              //带占位图的
              FadeInImage.assetNetwork(
                placeholder: "images/pic4.jpg",
                image: "http://n.sinaimg.cn/sports/2_img/upload/cf0d0fdd/107/w1024h683/20181128/pKtl-hphsupx4744393.jpg",
//          width: 120,
                height: 120,
//                fit: BoxFit.fill,//充满父容器
//                fit: BoxFit.contain,//尽可能大，保持图片分辨率
//                fit: BoxFit.cover,//充满容器，可能会被截断,
//                  fit:BoxFit.none,//图片居中显示，不改变分大小，可能会被截断
//              fit: BoxFit.fitWidth,//图片填满宽度，高度可能会被截断
//              fit: BoxFit.fitHeight,//图片填满高度，宽度可能会被截断
                fit: BoxFit.scaleDown, //图片可以完整显示，但是可能不能填充满
              ),
              //使用裁剪来实现图片圆角：
              ClipRRect(
                child: Image.asset(
                  "images/pic5.jpg", scale: 1.2, fit: BoxFit.cover,),
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(20),
                  topRight: Radius.circular(20),
                ),
              ),
              //使用边框来实现图片圆角：
              Container(
                width: 200,
                height: 120,
                decoration: BoxDecoration(
                  shape: BoxShape.rectangle,
                  borderRadius: BorderRadius.circular(10.0),
                  image: DecorationImage(
                      image: AssetImage("images/pic6.jpg"), fit: BoxFit.cover),
                ),
              ),
              //Text: 单一格式的文本
              Text("一个普通的文本一个普通的文本一个普通的文本一个普通的文本一个普通的文本一个普通的文本一个普通的文本",
                textAlign: TextAlign.right,
                textDirection: TextDirection.rtl,
                softWrap: true,//是否自动换行 false文字不考虑容器大小单行显示 ,超出屏幕部分将默认截断处理
//                overflow: TextOverflow.ellipsis,////文字超出屏幕之后的处理方式
                // TextOverflow.clip剪裁
                // TextOverflow.fade 渐隐
                // TextOverflow.ellipsis省略号
                textScaleFactor: 2.0,//字体显示的倍率
                maxLines: 10,
                style: TextStyle(
                  decorationColor: const Color(0xffff0000),//线的颜色
                  //none无文字装饰 lineThrough删除线 overline文字上面显示线  underline文字下面显示线
                  decoration: TextDecoration.underline,
                  //文字装饰的风格  dashed,dotted虚线(简短间隔大小区分)  double三条线  solid两条线
                  decorationStyle: TextDecorationStyle.solid,
                  wordSpacing: 0.0,//单词间隙(负值可以让单词更紧凑)
                  letterSpacing: 0.0,//字母间隙(负值可以让字母更紧凑)
                  fontStyle: FontStyle.italic,//文字样式，斜体和正常
                  fontSize: 20.0,//字体大小
                  fontWeight: FontWeight.w900,//字体粗细
                  color: const Color(0xff88ffff),//文字颜色

                ),
              ),
              //icon
              Icon(Icons.menu,color:Colors.yellow,size: 80,),
              IconButton(icon: ImageIcon(AssetImage("images/pic6.jpg")),iconSize: 200,onPressed: (){
                Fluttertoast.showToast(msg: "IconButton onPressed");
              },),
              //RaisedButton：Material Design中的button，一个凸起的材质矩形按钮
              RaisedButton(
                onPressed: () {
                  Fluttertoast.showToast(msg: "RaisedButton onPressed");
//            Fluttertoast.showToast(
//                msg: "RaisedButton click",
//                toastLength: Toast.LENGTH_SHORT,
//                gravity: ToastGravity.BOTTOM,
//                timeInSecForIos: 1,
////              backgroundColor: Color(0xffffff00),
//                textColor: Color(0xff000000),
//                fontSize: 16.0);
                },
                child: Text("RaisedButton.Text"),
                disabledTextColor: Color(0xff999999),
                disabledColor: Color(0xffff0000),
              ),
              FlutterLogo(
                colors: Colors.red,
                curve: Curves.decelerate,
                duration: Duration(seconds: 200),
                size: 120.0,
                style: FlutterLogoStyle.horizontal,
                textColor: Colors.amber,
              ),
              //Placeholder:一个绘制了一个盒子的的widget，代表日后有widget将会被添加到该盒子中
              Placeholder(
                color: Colors.orange,
                strokeWidth: 5,
                fallbackHeight: 200,
                fallbackWidth: 300,
              ),
              //Container：一个拥有绘制、定位、调整大小的 widget
              Container(
                height: 56.0,
                //单位是逻辑上的像素,并非真实的像素,类似于浏览器中的像素
                padding: const EdgeInsets.symmetric(horizontal: 8.0),
                decoration:  BoxDecoration(color: Colors.blue[500]),
                //Row: 在水平方向上排列子widget的列表
                child: Row(
                  children: <Widget>[
                     IconButton(
                      //Icon：A Material Design icon.
                        icon:  Icon(Icons.menu),
                        tooltip: 'Navigation menu',
                        onPressed: null),
                     Expanded(child: Text("title")),
                     IconButton(
                        icon:  Icon(Icons.search),
                        tooltip: 'search',
                        onPressed: null),
                  ],
                ),
              )
            ],
          ),
        ),
      ),
    );
  }
}
